/*
 * Copyright (c) 2020 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "hal_sys_param.h"

static const char OHOS_SERIAL[] = {"1234567890"};  // provided by OEM.

static const char OHOS_ABI_LIST[] = {"armm4_hard_fpv4-sp-d16-liteos"};
static const char OHOS_BOOTLOADER_VERSION[] = {"bootloader"};
static const char OHOS_BRAND[] = {"ccccc"};
static const char OHOS_DEVICE_TYPE[] = {"dddddd"};
static const char OHOS_DISPLAY_VERSION[] = {"OpenHarmony 3.1"};
static const char OHOS_HARDWARE_MODEL[] = {"bbbbbb"};
static const char OHOS_HARDWARE_PROFILE[] = {"aout:true,display:true"};
static const char OHOS_MARKET_NAME[] = {"xxx"};
static const char OHOS_MANUFACTURE[] = {"xxxxxx"};
static const char OHOS_PRODUCT_MODEL[] = {"xxxx"};
static const char OHOS_PRODUCT_SERIES[] = {"yyyy"};
static const char OHOS_SOFTWARE_MODEL[] = {"aaaa"};
static const int OHOS_FIRST_API_VERSION = 1;

const char* HalGetDeviceType(void)
{

    printf("HalGetDeviceType: %s\n", OHOS_DEVICE_TYPE);
    return OHOS_DEVICE_TYPE;
}

const char* HalGetManufacture(void)
{
    printf("HalGetManufacture: %s\n", OHOS_MANUFACTURE);
    
    return OHOS_MANUFACTURE;
}

const char* HalGetBrand(void)
{
    printf("HalGetBrand: %s\n", OHOS_BRAND);
    return OHOS_BRAND;
}

const char* HalGetMarketName(void)
{
    printf("HalGetMarketName: %s\n", OHOS_MARKET_NAME);
    return OHOS_MARKET_NAME;
}

const char* HalGetProductSeries(void)
{
    printf("HalGetProductSeries: %s\n", OHOS_PRODUCT_SERIES);
    return OHOS_PRODUCT_SERIES;
}

const char* HalGetProductModel(void)
{
    printf("HalGetProductModel: %s\n", OHOS_PRODUCT_MODEL);
    return OHOS_PRODUCT_MODEL;
}

const char* HalGetSoftwareModel(void)
{
    printf("HalGetSoftwareModel: %s\n", OHOS_SOFTWARE_MODEL);
    return OHOS_SOFTWARE_MODEL;
}

const char* HalGetHardwareModel(void)
{
    printf("HalGetHardwareModel: %s\n", OHOS_HARDWARE_MODEL);
    return OHOS_HARDWARE_MODEL;
}

const char* HalGetHardwareProfile(void)
{
    printf("HalGetHardwareProfile: %s\n", OHOS_HARDWARE_PROFILE);
    return OHOS_HARDWARE_PROFILE;
}

const char* HalGetBootloaderVersion(void)
{
    printf("HalGetBootloaderVersion: %s\n", OHOS_BOOTLOADER_VERSION);
    return OHOS_BOOTLOADER_VERSION;
}

const char* HalGetAbiList(void)
{
    printf("HalGetAbiList: %s\n", OHOS_ABI_LIST);
    return OHOS_ABI_LIST;
}

const char* HalGetDisplayVersion(void)
{
    printf("HalGetDisplayVersion: %s\n", OHOS_DISPLAY_VERSION);
    return OHOS_DISPLAY_VERSION;
}

const char* HalGetIncrementalVersion(void)
{
    printf("HalGetIncrementalVersion: %s\n", INCREMENTAL_VERSION);
    return INCREMENTAL_VERSION;
}

const char* HalGetBuildType(void)
{
    printf("HalGetBuildType: %s\n", BUILD_TYPE);
    return BUILD_TYPE;
}

const char* HalGetBuildUser(void)
{
    printf("HalGetBuildUser: %s\n", BUILD_USER);
    return BUILD_USER;
}

const char* HalGetBuildHost(void)
{
    printf("HalGetBuildHost: %s\n", BUILD_HOST);
    return BUILD_HOST;
}

const char* HalGetBuildTime(void)
{
    printf("HalGetBuildTime: %s\n", BUILD_TIME);
    return BUILD_TIME;
}

int HalGetFirstApiVersion(void)
{
    printf("HalGetFirstApiVersion: %d\n", OHOS_FIRST_API_VERSION);
    return OHOS_FIRST_API_VERSION;
}

const char* HalGetSerial(void)
{
    printf("HalGetSerial: %s\n", OHOS_SERIAL);
    return OHOS_SERIAL;
}